package com.dtx.visitor;

/**
 * File类也与Composite模式中的File类一样。当然,在Visitor模式中要注意理解它是如何实现accept接口。
 * accept方法的参数是Visitor类,然后accept方法的内部处理是"v.visit(this);",即调用了Visitor类的
 * visit方法。visit方法被重载了,此处调用的是visit(File)。这是因为这里的this是File类的实例。
 * 通过调用visit方法,可以告诉Visitor"正在访问的对象是File类的实例this"
 */
public class File extends Entry {


    private String name;

    private Integer size;

    public File(String name, Integer size) {
        this.name = name;
        this.size = size;
    }

    @Override
    public void accept(Visitor visitor) {
        visitor.visit(this);
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public Integer getSize() {
        return size;
    }
}
